package com.xinan.ollama.api.entity;

/**
 * 统一存放提示词
 *
 * @author Administrator
 */
public class PromptObj {

    public static final String PROMPT_OF_KEY_PERSON = "用户将提供给你一段情报内容，请你分析情报内容，并提取其中的关键信息，以 JSON 的形式输出，输出内容中不要有注释或解释性内容，" +
            "输出的 JSON 需严格遵守以下的格式，字段名称要严格按照格式进行设置：" +
            "{organize: <情报提到的组织，如果是微信群请使用微信群完整名称，没有请填空字符串>," +
            "event: <情报提到的事件，对事件进行总结，没有请填空字符串>," +
            "personList: <情报里包含的人员档案列表，每个对象包含姓名、手机号、身份证号码，格式为：{name:<姓名>,phoneNumber:<手机号>,idCard:<身份证号>，没有请填空字符串}>}";

    public static final String PROMPT_OF_KEY_PERSON_V_001 = "用户将提供给你一段情报内容，请你分析情报内容，并提取其中的关键信息，以 JSON 的形式输出，输出内容中不要有注释或解释性内容，" +
            "输出的 JSON 需严格遵守以下的格式，字段名称要严格按照格式进行设置：" +
            "{organize: <事件发起组织从【informationName】里截取>," +
            "event: <事件从【informationName】里截取>," +
            "personList: <情报里包含的人员档案列表，每个对象包含姓名、手机号、身份证号码，格式为：{name:<姓名>,phoneNumber:<手机号>,idCard:<身份证号>，没有请填空字符串}>}";

    public static final String PROMPT_OF_KEY_PERSON_V_002 = "任务指令：根据用户提供的情报内容，提取关键信息并以指定的JSON格式输出。请确保输出的内容中不包含任何注释或解释性文字。\n" +
            "输入格式：一段描述性的文本情报\n" +
            "输出格式：严格按照以下JSON结构输出结果\n" +
            "- `organize`：情报中提到的组织名称（如果是微信群，请使用完整的群名；如果没有提及组织，则该字段为空字符串）\n" +
            "- `event`：对情报中提到事件的简要总结（如果没有提及事件，则该字段为空字符串）\n" +
            "- `personList`：一个列表，其中每个元素是一个对象，代表情报中提到的人物档案。每个对象应包含以下属性：\n" +
            "  - `name`：人物姓名\n" +
            "  - `phoneNumber`：人物手机号码\n" +
            "  - `idCard`：人物身份证号码\n" +
            "  如果情报中没有提到相关人物，则`personList`为一个空字符串\n" +
            "注意事项：\n" +
            "1. 确保所有字段名称与示例中的完全一致。\n" +
            "2. 对于`personList`中的每个人物，如果缺少某些信息（如手机号或身份证号），则相应字段留空但保留键名。\n" +
            "3. 输出时严格遵循给定的JSON格式，不要添加额外的信息或注释。\n" +
            "示例输出格式：\n" +
            "```json\n" +
            "{\n" +
            "  \"organize\": \"${intelligence_organize}\",\n" +
            "  \"event\": \"${intelligence_event}\",\n" +
            "  \"personList\": [\n" +
            "    {\n" +
            "      \"name\": \"${person_name}\",\n" +
            "      \"phoneNumber\": \"${person_phoneNumber}\",\n" +
            "      \"idCard\": \"${person_idCard}\"\n" +
            "    }\n" +
            "  ]\n" +
            "}\n" +
            "```\n" +
            "请将上述模板中的变量替换为实际从情报中提取的数据。如果某部分信息不存在，则相应位置填写空字符串。";

    public static final String PROMPT_OF_KEY_PERSON_V_003 = "任务指令：根据用户提供的情报内容，提取关键信息并以指定的JSON格式输出。请确保输出的内容中不包含任何注释或解释性文字。\n" +
            "输入格式：一段描述性的文本情报\n" +
            "输出格式：严格按照以下JSON结构输出结果\n" +
            "- `personList`：一个列表，其中每个元素是一个对象，代表情报中提到的人物档案。每个对象应包含以下属性：\n" +
            "  - `name`：人物姓名\n" +
            "  - `phoneNumber`：人物手机号码\n" +
            "  - `idCard`：人物身份证号码\n" +
            "  如果情报中没有提到相关人物，则`personList`为一个空字符串\n" +
            "注意事项：\n" +
            "1. 确保所有字段名称与示例中的完全一致。\n" +
            "2. 对于`personList`中的每个人物，如果缺少某些信息（如手机号或身份证号），则相应字段留空但保留键名。\n" +
            "3. 输出时严格遵循给定的JSON格式，不要添加额外的信息或注释。\n" +
            "示例输出格式：\n" +
            "```json\n" +
            "{\n" +
            "  \"personList\": [\n" +
            "    {\n" +
            "      \"name\": \"${person_name}\",\n" +
            "      \"phoneNumber\": \"${person_phoneNumber}\",\n" +
            "      \"idCard\": \"${person_idCard}\"\n" +
            "    }\n" +
            "  ]\n" +
            "}\n" +
            "```\n" +
            "请将上述模板中的变量替换为实际从情报中提取的数据。如果某部分信息不存在，则相应位置填写空字符串。";

    public static final String PROMPT_OF_ANALYSIS_REPORT_V001 = "用户将提供给你一段情报内容，请你分析情报内容，生成一份报告。";

    public static final String PROMPT_OF_ANALYSIS_REPORT_V002 = "任务指令：根据用户提供的情报内容，生成一份详细的分析报告。报告需包含以下四个部分：一.事件概述、二.事件分析、三.应对策略、四.结论。\n" +
            "回答格式：采用正式和专业的语气撰写报告，确保每个部分的内容都清晰且具有逻辑性。\n" +
            "注意事项：\n" +
            "1. 事件概述：简明扼要地总结情报中提到的主要事件及其背景信息。\n" +
            "2. 事件分析：深入探讨事件的原因、影响范围及可能的发展趋势。基于现有数据或已知事实进行合理推测。\n" +
            "3. 应对策略：提出针对该事件的具体建议措施，包括但不限于预防措施、即时响应计划等。这些建议应具备可操作性和实用性。\n" +
            "4. 结论：总结整个报告的关键发现，并强调采取行动的重要性。如果适用的话，还可以指出未来需要进一步关注的方向。";

    public static final String PROMPT_OF_ANALYSIS_REPORT = "任务指令：根据用户提供的情报内容，生成一份详细的分析报告。报告需使用Markdown语法编写，要有编号和缩进，正文每行40个字开头缩进4个字，并包含以下四个部分：\n" +
            "1. 事件概述\n" +
            "2. 事件分析\n" +
            "3. 应对策略\n" +
            "回答格式：采用正式和专业的语气撰写报告，确保每个部分的内容都清晰且具有逻辑性。括号内的说明不需要输出。请确保输出的内容中不包含任何注释或解释性文字。\n" +
            "注意事项：\n" +
            "- **事件概述**：简明扼要地总结情报中提到的主要事件及其背景信息。\n" +
            "- **事件分析**：深入探讨事件的原因、影响范围及可能的发展趋势。基于现有数据或已知事实进行合理推测。\n" +
            "- **应对策略**：提出针对该事件的具体建议措施，包括但不限于预防措施、即时响应计划等。这些建议应具备可操作性和实用性。\n" +
            "---\n" +
            "## 一.事件概述\n" +
            "### (1)主要事件(说明：简要描述事件发生的时间、地点、主要参与者以及初步情况。)\n" +
            "### (2)背景信息(说明：提供必要的背景信息，帮助读者理解事件的上下文。)\n" +
            "## 二.事件分析\n" +
            "### (1)根本原因(说明：分析事件的根本原因，可以是多方面的。)\n" +
            "### (2)影响范围(说明：探讨事件的影响范围，包括直接和间接影响。)\n" +
            "### (3)发展趋势(说明：预测事件可能的发展趋势，基于当前可用的信息做出合理的推断。)\n" +
            "## 三.应对策略\n" +
            "### (1)预防措施(说明：提出具体的预防措施，以防止类似事件再次发生。)\n" +
            "### (2)响应计划(说明：制定即时响应计划，以便在事件发生时能够迅速有效地处理。)\n" +
            "### (3)解决方案(说明：建议长期解决方案，以解决根本问题并提高系统的整体稳定性。)";

    public static final String PROMPT_OF_KEY_PERSON_LEVEL = "任务指令：用户将提供一段情报内容，你需要分析这段内容并从中提取关键信息。最终以JSON格式输出结果，且输出中不应包含任何注释或解释性文字。" +
            "输出格式要求：\n" +
            "- 输出的JSON需严格遵循以下结构和字段命名规则。\n" +
            "- 字段名称必须严格按照给定格式设置。\n" +
            "JSON格式模板：\n" +
            "```json\n" +
            "{\n" +
            "  \"organize\": \"${组织名}\",  // 情报中提到的组织名称，如果是微信群请使用完整群名，若无相关信息则填写空字符串\"\"\n" +
            "  \"event\": \"${事件描述}\",  // 对情报中提到的事件进行总结，若无相关信息则填写空字符串\"\"\n" +
            "  \"personLevel\": [  // 涉及人员的角色列表\n" +
            "    {\n" +
            "      \"name\": \"${姓名}\",\n" +
            "      \"role\": \"${角色}\"  // 角色可以是“骨干”、“成员”或其他相关描述\n" +
            "    }\n" +
            "  ],\n" +
            "  \"personList\": [  // 人员档案列表\n" +
            "    {\n" +
            "      \"name\": \"${姓名}\",\n" +
            "      \"phoneNumber\": \"${手机号}\",\n" +
            "      \"idCard\": \"${身份证号}\"\n" +
            "    }\n" +
            "  ]\n" +
            "}\n" +
            "```\n" +
            "\n" +
            "注意事项：\n" +
            "1. 确保所有提取的信息准确无误地反映了原文档中的内容。\n" +
            "2. 如果某个字段在文档中没有对应信息，请确保该字段值为空字符串`\"\"`或相应的空数组`[]`。\n" +
            "3. 在处理敏感个人信息（如手机号、身份证号）时，请特别注意数据安全与隐私保护原则。\n" +
            "4. 输出结果应直接呈现为上述指定格式的JSON对象，不添加额外的文字说明或注解。";

    public static final String PROMPT_OF_EVENT_AND_ORGANIZE_NAME = "任务描述：根据给定的一句话，从中提取出团体名称和事件名称，并以JSON格式输出结果。请确保输出的JSON对象包含两个键值对：\"organizeName\" 对应组织的名称，\"eventName\" 对应事件的名称。\n" +
            "输出格式要求：\n" +
            "- 结果必须是有效的JSON字符串。\n" +
            "- JSON结构如下：`{\"organizeName\":\"${团体的名称}\",\"eventName\":\"${事件的名称}\"}`\n" +
            "- 如果句子中没有明确提到团体或事件，则相应字段可以为空字符串，但JSON结构保持不变。\n" +
            "示例输入与预期输出：\n" +
            "- 输入：“阿里巴巴集团在杭州举办了年度开发者大会。”\n" +
            "- 输出：`{\"organizeName\":\"阿里巴巴集团\",\"eventName\":\"年度开发者大会\"}`\n" +
            "注意事项：\n" +
            "- 提取时请注意区分普通名词与特定的团体名、事件名。\n" +
            "- 确保正确识别并准确提取句子中的关键信息。\n" +
            "- 保持输出格式严格符合上述规定。";


    public static final String PROMPT_OF_GENERATE_INFORMATION_BY_DATA_001 = "任务指令：根据提供的人员、组织、时间、事件、地点等信息，撰写一篇情报报告。报告需分为三个部分：事件说明、相关人员介绍以及事件分析。\n" +
            "\n" +
            "回答格式：\n" +
            "- 第一部分：事件说明\n" +
            "  - 清晰描述事件发生的时间、地点及具体情况。\n" +
            "- 第二部分：相关人员说明\n" +
            "  - 列出所有涉及该事件的关键人物，并简要介绍他们的角色和背景。\n" +
            "- 第三部分：事件分析\n" +
            "  - 对事件进行深入分析，包括但不限于可能的原因、影响及其对相关方的意义。";


    public static final String PROMPT_OF_GENERATE_INFORMATION_BY_DATA = "" +
            "任务指令：根据提供的人员、组织、时间、事件、地点等信息，撰写一篇情报正文。" +
            "正文需分为三个部分：事件说明、相关人员介绍以及事件分析。\n" +
            "生成的内容不要有标题，也不要用markdown语法，使用word文档的格式。" +
            "回答格式：\n" +
            "清晰描述事件发生的时间、地点及具体情况。\n" +
            "列出所有涉及该事件的关键人物，并简要介绍他们的角色和背景。\n" +
            "对事件进行深入分析，包括但不限于可能的原因、影响及其对相关方的意义。";

}
